package com.ucode.application.form.sys;

import java.io.Serializable;
import java.util.List;

import javax.validation.constraints.NotBlank;

import org.hibernate.validator.constraints.Length;

import com.ucode.springboot.starter.web.validator.annotation.CheckMember;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

/**
 * 角色表单实体
 * @author: liliang
 * @date: 2019年12月16日 下午8:31:49
 */
@SuppressWarnings("serial")
@ApiModel(value="系统角色")
public class RoleForm implements Serializable{
    
    /**
     * 所属系统
     */
    @ApiModelProperty(value = "子系统类型:0->系统设置1->CRM系统2->OA系统) ",required=false,example="0")
    @CheckMember(value={"0","1","2"},message="子系统类型非法")
    private Integer subSys;
    
    /**
     * 名称
     */
    @ApiModelProperty(value = "角色名称",required=true)
    @NotBlank(message = "角色名称不能为空")
    @Length(max=100,message = "角色名称最大100字符")
    private String name;
    
    /**
     * 数据权限类型
     */
    @ApiModelProperty(value = "权限类型:0、无1、本人，2、本人及下属，3、本部门，4、本部门及下属部门，100全部",required=false,example="0")
    @CheckMember(value={"0","1","2","3","4","100"},message="数据权限类型非法")
    private Integer dataType;
    /**
     * 备注
     */
    @ApiModelProperty(value = "备注",required=false)
    @Length(max=255,message = "备注最大长度255字符")
    private String remark;
    
    /**
     * 资源Id集合
     */
    @ApiModelProperty(value = "资源Id数组",required=false)
    public List<Long>  menuIds;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public List<Long> getMenuIds() {
        return menuIds;
    }

    public void setMenuIds(List<Long> menuIds) {
        this.menuIds = menuIds;
    }

    public Integer getSubSys() {
        return subSys;
    }

    public void setSubSys(Integer subSys) {
        this.subSys = subSys;
    }

    public Integer getDataType() {
        return dataType;
    }

    public void setDataType(Integer dataType) {
        this.dataType = dataType;
    }
    
}
